// let o = {}
// let r = 123
// Object.defineProperty(o, "n", {
//   get: function () {
//     return r;
//   },
//   set: function (val) {
//     r = val;
//   },
//   enumerable: false, //不参与循环
//   configurable: true
// });
// console.log(o.n); //123
// console.log(Object.keys(o)); //[] //也就说是不参与循环
//
// typeof a


/*console.log(NaN === NaN); //false
console.log(NaN !== NaN); //true

hasChanged = (value, oldValue) => value !== oldValue && (value === value/!*NaN!==NaN为true,但NaN===NaN为false*!/ || oldValue === oldValue)

console.log(hasChanged(NaN, NaN)); //false*/


const map = new Map();
map.set(0,'a')
map.set(1,'b')
map.set('length','xxx')

map.forEach((v,k)=>{
  console.log('v:',v);
  console.log('k:',k);
})
/*
v: a k: 0
v: b k: 1
v: xxx k: length
*/

console.log(typeof Object); //function

